package com.frank.oj.service.entity.group;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.frank.model.entity.group.GroupMember;
import com.frank.oj.model.vo.GroupMemberVO;

import java.util.List;

/**
 * @author frank
 * @Date 2024/3/29
 */
public interface GroupMemberEntityService extends IService<GroupMember> {
    List<String> getGroupRootUidList(Long gid);

    void addDissolutionNoticeToGroupMember(Long gid, String name, List<String> groupMemberUidList, String username);

    IPage<GroupMemberVO> getMemberList(Integer limit, Integer currentPage, String keyword, Integer auth, Long gid);

    IPage<GroupMemberVO> getApplyList(Integer limit, Integer currentPage, String keyword, Integer auth, Long gid);

    void addWelcomeNoticeToGroupNewMember(Long gid, String name, String uid);

    void addApplyNoticeToGroupRoot(Long gid, String name, String uid);

    void addRemoveNoticeToGroupMember(Long gid, String name, String username, String uid);
}
